namespace MoreLinq.Test;

using System;

/// <summary>
/// Functions which throw NotImplementedException if they're ever called.
/// </summary>
static class BreakingFunc
{
    internal static Func<TResult> Of<TResult>() =>
        () => throw new NotImplementedException();

    internal static Func<T, TResult> Of<T, TResult>() =>
        _ => throw new NotImplementedException();

    internal static Func<T1, T2, TResult> Of<T1, T2, TResult>() =>
        (_, _) => throw new NotImplementedException();

    internal static Func<T1, T2, T3, TResult> Of<T1, T2, T3, TResult>() =>
        (_, _, _) => throw new NotImplementedException();

    internal static Func<T1, T2, T3, T4, TResult> Of<T1, T2, T3, T4, TResult>() =>
        (_, _, _, _) => throw new NotImplementedException();
}
